<script>

    // symbol的值由Symbol实例化而来，symbol只有两种值：
    // Symbol()  Symbol(string描述注释)

    // symbol代表的是一个【独一无二】的值

    // symbol作用是什么：用来作为属性名（目前应用在js底层上）
    // 对象的属性名可以是：字符串，但是现在也可以是symbol

    // let obj={
    //     apple:"iphone13",
    //     apple:"苹果13斤"
    // }
    // console.log(obj);//{apple: '苹果13斤'}  后写的会覆盖先写的（这是字符串作为属性名的一个弊端）
    
    let mi=Symbol("小米");
    
    console.log(Symbol);
    Symbol.HW=Symbol("Symbol.HW");

    let obj={
        [Symbol("iphone13")]:"iphone13",
        [Symbol("苹果13斤")]:"苹果13斤",
        [mi]:"小米",
        [Symbol.HW]:"华为"

    }
    console.log(obj);//{Symbol(): 'iphone13', Symbol(): '苹果13斤'}



    obj[Symbol()]=function(){
        console.log("我是一个方法");
    }
    console.log(obj);//{Symbol(): 'iphone13', Symbol(): '苹果13斤', Symbol(): ƒ}



    console.log([1,2,3]);//Symbol(Symbol.iterator)
    console.log(obj[Symbol("iphone13")]);//undefined 和obj中的[Symbol("iphone13")]不是同一个值




    // 如果想要修改或者获取symbol的值，则需要使用变量接收一下symbol,然后才可以使用变量去代表这个symbol

    console.log(obj[mi]);//小米
    console.log(obj[Symbol.HW]);//华为
    obj[Symbol.HW]="p40"
    console.log(obj);

    
    

</script>
